import { createRouter, createWebHistory } from 'vue-router'

import store from '@store'

// 路由匹配规则
const routes = [
  {
    path: '/',
    name: 'home',
    component: () => import('@views/Home/index.vue')
  },
  // 访问不存在的路径时
  {
    path: '/:pathMatch(.*)*',
    name: 'not-found',
    component: () => import('@views/NotFound/index.vue')
  }
]

// 创建router实例
const router = createRouter({
  history: createWebHistory(),
  routes
})

// 导航守卫
router.beforeEach(to => {
  // 对无需登录的页面进行放行
  if (!to.meta.requireAuth) {
    return true
  }

  // 校验登录状态
  if (!store.state.user.token || !window.localStorage.getItem('USER_TOKEN')) {
    // 跳转登录页，同时记录当前位置
    return {
      name: 'login',
      query: {
        redirect: to.fullPath // 记录当前要跳转的页面,登录成功后跳回对应页面
      }
    }
  }
})

export default router
